Spark クラスター対応 PySpark の初期化

Chorus Data セクションで Spark コンピューティング クラスターを構成している場合は、PySpark を使用してテーブル データの読み取りと書き込みを行うことができます。このノートブックは、ワークフローのダウンストリーム オペレーターが使用できる Python 実行 オペレーターとして公開できます。

この方法は、中規模または大規模なデータセットに対しては他の方法よりもはるかに効率的であり、数 GB を超えるサイズのデータセットを読み取る場合に唯一実行可能なオプションです。

ノート: 1 つのデータ ソースに対して 1 つのデータセットのみが初期化されます。

PySpark は、Jupyter Notebooks for Team Studio で初期化して使用できます。

これを実行するには、TIBCO Data Science - Team Studio の Notebooks 環境で開始します。このオプションは、Apache Spark 3.2 以降のクラスターで利用可能なデータを読み込みます。
    手順
  1. 新しいノートブックを作成します
  2. [データ] をクリックし、[PySpark for Spark Cluster の初期化] を選択します。

    データ タブ - Spark クラスターのオプションの PySpark の初期化

  3. 接続するデータ ソースの選択 ダイアログが表示されます。既存の Spark Cluster データ ソースを選択し、[データ ソースの追加] をクリックします。

    接続するデータ ソースの選択ダイアログ

  4. ノートブックに少しのコードが挿入されます。これにより、データ ソースとノートブック間の通信が容易になります。さらに多くのデータ ソースを読み込む場合は、手順 1 から手順 3 を繰り返します (Python 実行オペレーターへの入力の最大制限は 3 です)。このコードを実行するには、shift+enter を押すか、[実行] をクリックします。

    これで、挿入されたコード内のコメントを参照して他のコマンドを実行できるようになります。

    コマンドは、メソッドが正しく動作するために必要なパラメーターを備えたクラス ChorusCommander のインスタンス化されたオブジェクトであるオブジェクト cc を使用します。生成されたコードは、cc.read_input_table メソッド呼び出しで、sqlContext 引数を初期化された Spark セッションに設定します。 spark_options 辞書引数を設定して、自動検出された JDBC ドライバー クラスに設定された driver プロパティを持つ追加のオプションを渡すことができます。

  5. データセットを読み取るには、そのデータセット用に生成されたコード内の行と、対応する spark_options を持つ _props 変数のコメントを解除します。

  6. ノートブックを Python 実行オペレーターとして使用するには、use_input_substitution パラメーターを [False] から [True] に変更し、読み込むデータセットの execution_label パラメータを追加します。execution_label の値は文字列 '1' から始まり、その後に、後続のデータセットに対して '2''3' が続く必要があります。詳細については、help(cc.read_input_table) を参照してください。

  7. 生成された cc.read_input_table メソッド呼び出しは、Spark データ フレームを返します。必要に応じて、データ フレームに対して変更、コピー、またはその他の操作を実行できます。

  8. 必要な出力 Spark データ フレームが作成されたら、cc.write_output_table を使用してターゲット テーブルに書き込みます。

    • ダウンストリーム オペレーターでの出力の使用を有効にするには、use_output_substitution=True を設定します。

    • ターゲットと同じ名前を持つ既存のテーブルを削除するには、drop_if_exists パラメーターを [True] に設定します。

    • ドライバーの read_input_table と同様に spark_options 引数を使用します。 cc.datasource_name = '...' を必要な値に更新し、それに応じて spark_options のドライバーを更新することで、別のターゲット データ ソースに書き込むこともできます。

    詳細については、help(cc.write_output_table) を参照してください。

  9. ノートブックをレガシー ワークフローで Python 実行オペレーターとして使用できるように、ノートブックを手動で実行してメタデータを決定します。